package com.jrx.anytxn.param.mapper.ext;

import com.jrx.anytxn.common.annotation.ParamTuningAnnotation;
import com.jrx.anytxn.param.entity.PrTransactionCodeTable;
import com.jrx.anytxn.param.mapper.base.PrTransactionCodeTableMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 交易码接口扩展
 *
 * @author Qingyao Xing
 * @date 2019/9/27 16:14
 */
public interface ExtPrTransactionCodeTableMapper extends PrTransactionCodeTableMapper {

    /**
     * 根据租户ID查询所有
     *
     * @param tenantId 租户ID
     * @return java.util.List<com.jrx.anytxn.param.entity.PrTransactionCodeTable>
     * @author fan.yang
     * date: 2019/10/12 0012 下午 18:02
     */
    List<PrTransactionCodeTable> selectByTenId(@Param("tenantId") String tenantId,@Param("transactionCode") String transactionCode);

    /**
     * 根据字段是否为空更新
     *
     * @param transactionCodeTable 交易码参数
     * @return int
     * @author fan.yang
     * date: 2019/10/17 0017 下午 20:52
     */
    @ParamTuningAnnotation
    int updateByPrimaryKeySelectiveAndNotNull(PrTransactionCodeTable transactionCodeTable);

    /**
     * 根据交易码和租户ID删除交易码表信息
     *
     * @param transactionCode 交易码
     * @param tenantId        租户ID
     * @return int
     * @author fan.yang
     * date: 2019/10/12 0012 下午 18:08
     */
    @ParamTuningAnnotation
    int deleteByCodeAndTenId(@Param("transactionCode") String transactionCode, @Param("tenantId") String tenantId);

    /**
     * 通过交易码和租户ID查询交易码参数
     *
     * @param transactionCode 交易码
     * @param tenantId        租户ID
     * @return com.jrx.anytxn.param.entity.PrTransactionCodeTable
     * @author fan.yang
     * date: 2019/10/12 0012 下午 18:00
     */
    PrTransactionCodeTable selectByCodeAndTenId(@Param("transactionCode") String transactionCode, @Param("tenantId") String tenantId);
}